---
id: getting-started
title: Getting Started
sidebar_label: Getting Started
sidebar_id: getting-started
slug: /getting-started
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import useBaseUrl from '@docusaurus/useBaseUrl'

## Requirements

Because RNMIP uses Nitro Module, it complies with Nitro Modules' requirements.<br />
View Nitro Modules' requirements [here](https://nitro.margelo.com/docs/minimum-requirements)

<Tabs groupId="platform">
  <TabItem value="ios" label="iOS" default>
    - `iOS` 13+

    - `react-native` 0.75+

    - `Xcode` 16+

  </TabItem>
  <TabItem value="android" label="Android">
    - `react-native` 0.75+

    - `compileSdkVersion` 34+

  </TabItem>
</Tabs>

## Installing

Install [@baronha/react-native-multiple-image-picker](https://www.npmjs.com/package/@baronha/react-native-multiple-image-picker) through npm:

> This package requires `react-native-nitro-modules` to be installed first.
> See [react-native-nitro-modules](https://github.com/mrousavy/nitro) for more information.

<Tabs
  groupId="environment"
  defaultValue="rn"
  values={[
    {label: 'React Native', value: 'rn'},
    {label: 'Expo', value: 'expo'}
  ]}>
<TabItem value="rn">

```bash
yarn add @baronha/react-native-multiple-image-picker
yarn add -D react-native-nitro-modules
cd ios && pod install
```

</TabItem>

<TabItem value="expo">

```bash
npx expo install @baronha/react-native-multiple-image-picker 
npx expo install react-native-nitro-modules -- --dev
npx expo prebuild
```

</TabItem>
</Tabs>

## Updating manifests

<Tabs
  groupId="environment"
  defaultValue="rn"
  values={[
    {label: 'React Native', value: 'rn'},
    {label: 'Expo', value: 'expo'}
  ]}>
<TabItem value="rn">

### Info.plist

Open your project's `Info.plist` and add the following lines inside the outermost `<dict>` tag:

```xml
<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) needs photo library permissions</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs photo library permissions</string>
<!--  if you allow camera, you need to add this:-->
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) needs to access your Camera</string>
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) needs to access your microphone so that you can record audio.</string>
```

</TabItem>
<TabItem value="expo">

### Managed Expo

Config your Expo app (`app.json`, `app.config.json` or `app.config.js`):

```json
{
  "name": "my app",
  "ios": {
    // ...
    "infoPlist": {
      "NSPhotoLibraryAddUsageDescription": "$(PRODUCT_NAME) needs photo library permissions",
      "NSPhotoLibraryUsageDescription": "$(PRODUCT_NAME) needs photo library permissions",
      // if you allow camera, you need to add this
      "NSCameraUsageDescription": "$(PRODUCT_NAME) needs to access your Camera",
      "NSMicrophoneUsageDescription": "$(PRODUCT_NAME) needs to access your microphone so that you can record audio"
    }
    // ...
  }
}
```

Finally, compile the mods:

```bash
npx expo prebuild
```

To apply the changes, build a new binary with EAS:

```bash
eas build
```

</TabItem>
</Tabs>

<br />

#### 🎉 Hooray! You're ready to learn about [Usage](/usage)!

---
